package de.cau.apo.problems;

/**
 * This class is a general solution, where the corresponding instance 
 * object is required and stored internally.
 * 
 * @author Marius Richter
 *
 * @param <I> the instance type with that this solution type shall interact
 */
public abstract class AbstractSolution<I extends IInstance> implements ISolution<I> {

	// ########### properties ###########
	
	/** the instance where the problem parameters are defined */
	public final I instance;
	
	// ########### instantiation ###########
	
	/**
	 * @param instance the instance where the problem parameters are defined
	 */
	public AbstractSolution(I instance) {
		this.instance = instance;
	}
	
	// ########### getter/setter ###########
	
	/**
	 * @return the instance where the problem parameters are defined
	 */
	public I getInstance() {
		return instance;
	}
	
}
